import argparse
import configpath
from utils.Merge_catalog_Main import CatalogMerger
from utils.Merge_catalog_MainParallel import CatalogMerger_parallel

if __name__ == "__main__":
    # 创建解析器对象
    parser = argparse.ArgumentParser(description="Merge catalogs based on observation date.")

    # 添加 --date 参数，设置为必需的参数，并提供默认值
    parser.add_argument(
        '--date', 
        type=str, 
        # default='2025-01-03',  # 设置默认值
        required=False,  # 改为可选参数
        help='输入处理日期，格式为 YYYYMMDD (默认值: 20240209)'
    )

    # 添加 --version 参数，设置为必需的参数，并提供默认值
    parser.add_argument(
        '--version', 
        type=str, 
        default='V20250303',  # 设置默认值
        required=False,  # 改为可选参数
        help='版本号 (默认值: V20240815)'
    )

    # 添加 --catdir 参数，设置为可选参数，并提供默认值
    parser.add_argument(
        '--catdir', 
        type=str, 
        default=None,  # 设置默认值
        required=False,  # 设置为可选参数
        help='自定义的 catalog 文件目录路径 (默认值: /mnt/data/catalog_merge/images/1246989-76621/*sexcat_CalMag.fits)'
    )

    # 添加 --filesavedir 参数，设置为可选参数，并提供默认值
    parser.add_argument(
        '--filesavedir', 
        type=str, 
        default=configpath.filesavedir,  # 设置默认值
        required=False,  # 设置为可选参数
        help='自定义的输出文件保存目录路径 (默认值: ./mergecat/)'
    )

    # 解析命令行参数
    args = parser.parse_args()

    # 初始化并运行 CatalogMerger or CatalogMerger_parallel （一个是并行版本一个是非并行版本）
    merger = CatalogMerger_parallel(
        base_dir=configpath.base_dir, 
        date=args.date, 
        version=args.version,
        catdir=args.catdir,  # 使用解析的 catdir 参数或默认值
        filesavedir=args.filesavedir,  # 使用解析的 filesavedir 参数或默认值
        path_cat=None,
        path_xpcat=None
    )
    merger.process(test=True)